//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    item:0,
    tab:0,
    state:'paused',
    playIndex:0,
    play:{
      currentTime:'00:00',
      duration:'00:00',
      percent:0,
      title:'',
      singer:'',
      coverImgUrl:'../../image/5.png',
  },
  playlist:[
    {
      id:1,title:'123', singer:'123',
      src:'http://localhost:3000/backup_8.123.mp3',coverImgUrl:'../../image/音乐.png'
    },
    {
      id:2,title:'abc', singer:'abc',
      src:'http://localhost:3000/abc.mp3',coverImgUrl:'../../image/音乐.png'
    },
    {
      id:3,title:'123', singer:'123',
      src:'http://localhost:3000/123.mp3',coverImgUrl:'../../image/音乐.png'
    },
    {
      id:4,title:'123', singer:'123',
      src:'http://localhost:3000/123.mp3',coverImgUrl:'../../image/音乐.png'
    }
    
      
    
  ]
},
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
  })
},
  onLoad: function () {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
    })
    } else if (this.data.canIUse){

      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
      })
    }
    } else {

      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
        })
      }
    })
  }
},
getUserInfo: function(e) {
  console.log(e)
  app.globalData.userInfo = e.detail.userInfo
  this.setData({
    userInfo: e.detail.userInfo,
    hasUserInfo: true
  })
},
changeItem:function(e){
  this.setData({
    item:e.target.dataset.item
  })
},
changeTab:function(e){
  this.setData({
    tab:e.detail.current
  })
},
audioCtx:null,
onReady:function(){
  this.audioCtx=wx.createInnerAudioContext()
  this.setMusic(0)
  var that = this
 
  this.audioCtx.onError(function() {
    console.log('播放失败：' + that.audioCtx.src)
  })
  
  this.audioCtx.onEnded(function() {
    that.next()
  })

  this.audioCtx.onPlay(function() {})
  this.audioCtx.onTimeUpdate(function() {
    that.setData({
      'play.duration': formatTime(that.audioCtx.duration),
      'play.currentTime': formatTime(that.audioCtx.currentTime),
      'play.percent': that.audioCtx.currentTime / that.audioCtx.duration * 100
    })
  })
  
  function formatTime(time) {
    var minute = Math.floor(time / 60) % 60;
    var second = Math.floor(time) % 60
    return (minute < 10 ? '0' + minute : minute) + ':' + (second < 10 ? '0' + second : second)
  }
},
setMusic: function(index) {
  var music = this.data.playlist[index]
  this.audioCtx.src = music.src
  this.setData({
    playIndex: index,
    'play.title': music.title,
    'play.singer': music.singer,
    'play.coverImgUrl': music.coverImgUrl,
    'play.currentTime': '00:00',
    'play.duration': '00:00',
    'play.percent': 0
  })
},
play: function() {
  this.audioCtx.play()
  this.setData({
    state: 'running'
  })
},
pause: function() {
  this.audioCtx.pause()
  this.setData({
    state: 'paused'
  })
},

next: function() {
  var index = this.data.playIndex >= this.data.playlist.length - 1 ? 0 : this.data.playIndex + 1
  this.setMusic(index)
  if (this.data.state === 'running') {
    this.play()
  }
},
 sliderChange: function(e) {
  var second = e.detail.value * this.audioCtx.duration / 100
  this.audioCtx.seek(second)
},

change: function(e) {
  this.setMusic(e.currentTarget.dataset.index)
  this.play()
}
})
 

